package com.ygqh.baby.service.wechat.model;

import java.io.Serializable;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

import com.alibaba.fastjson.annotation.JSONField;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class WxDeclareCustoms implements Serializable{
	private static final long serialVersionUID = -2540004526398568417L;
	
	/**
	 * ZHENGZHOU_ZH_ZS 郑州综保（总署版）
	 */
	public final static String XINZHENGZHONGBAO_ZONGSHUBAN = "ZHENGZHOU_ZH_ZS";

	@XmlElement(name = "appid")
	@JSONField(name = "appid")
	private String appid;
	
	@XmlElement(name = "mch_id")
	@JSONField(name = "mch_id")
	private String mchId;
	
	/**
	 *商户订单号  是	String(32)	20150806125346	商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|*@ ，且在同一个商户号下唯一。
	 */
	@XmlElement(name = "out_trade_no")
	@JSONField(name = "out_trade_no")
	private String outTradeNo;
	
	
	/**
	 * 微信支付订单号	transaction_id	是	String(28)	1000320306201511078440737890	微信支付返回的订单号
	 */
	@XmlElement(name = "transaction_id")
	@JSONField(name = "transaction_id")
	private String transactionId;
	
	/**
	 * 海关	customs	是	String(32)	SHANGHAI	
		NO 无需上报海关
		GUANGZHOU_ZS 广州（总署版）
		GUANGZHOU_HP_GJ 广州黄埔国检（需推送订单至黄埔国检的订单需分别推送广州（总署版）和广州黄埔国检，即需要请求两次报关接口）
		GUANGZHOU_NS_GJ 广州南沙国检（需推送订单至南沙国检的订单需分别推送广州（总署版）和广州南沙国检，即需要请求两次报关接口）
		HANGZHOU_ZS 杭州（总署版）
		NINGBO 宁波
		ZHENGZHOU_BS 郑州（保税物流中心）
		CHONGQING 重庆
		XIAN 西安
		SHANGHAI_ZS 上海（总署版）
		SHENZHEN 深圳
		ZHENGZHOU_ZH_ZS 郑州综保（总署版）
		TIANJIN 天津
		BEIJING 北京
	 */
	@XmlElement(name = "customs")
	@JSONField(name = "customs")
	private String customs;
	
	/**
	 * 商户海关备案号	mch_customs_no	是	String(32)	123456	商户在海关登记的备案号，customs非NO，此参数必填
	 */
	@XmlElement(name = "mch_customs_no")
	@JSONField(name = "mch_customs_no")
	private String mchCustomsNo;

	/**
	 * 关税	duty	否	Int	888	关税，以分为单位，少数海关特殊要求上传该字段时需要
	 */
	@XmlElement(name = "duty")
	@JSONField(name = "duty")
	private int duty;
	
	/**
	 * 报关类型	action_type	否	String	ADD	 不传，默认是新增
		ADD 新增报关申请
		MODIFY 修改报关信息
	 */
	@XmlElement(name = "action_type")
	@JSONField(name = "action_type")
	private String actionType;
	
	@XmlElement(name = "sign")
	@JSONField(name = "sign")
	private String sign;
	
	
	/**
	 * 商户子订单号	sub_order_no	否	String(32)	20150806125346	商户子订单号，如有拆单则必传
	 */
	@XmlElement(name = "sub_order_no")
	@JSONField(name = "sub_order_no")
	private String subOrderNo;
	
	/**
	 * 币种	fee_type	否	String(3)	CNY	微信支付订单支付时使用的币种，暂只支持人民币CNY,如有拆单则必传。
	 */
	@XmlElement(name = "fee_type")
	@JSONField(name = "fee_type")
	private String feeType;
	
	/**
	 * 应付金额	order_fee	否	Int	888	子订单金额，以分为单位，不能超过原订单金额，order_fee=transport_fee+product_fee（应付金额=物流费+商品价格），如有拆单则必传
	 */
	@XmlElement(name = "order_fee")
	@JSONField(name = "order_fee")
	private String orderFee;
	
	/**
	 * 物流费	transport_fee	否	Int	888	物流费用，以分为单位，如有拆单则必传。
	 */
	@XmlElement(name = "transport_fee")
	@JSONField(name = "transport_fee")
	private String transportFee;
	
	/**
	 * 商品价格	product_fee	否	Int	888	商品费用，以分为单位，如有拆单则必传。
	 */
	@XmlElement(name = "product_fee")
	@JSONField(name = "product_fee")
	private String productFee;

	
	/**
	 * 证件类型	cert_type	否	String(32)	IDCARD	请传固定值IDCARD,暂只支持大陆身份证。
	 */
	@XmlElement(name = "cert_type")
	@JSONField(name = "cert_type")
	private String certType;
	
	/**
	 * 证件号码	cert_id	否	String(64)	330821198809085211	用户大陆身份证号，尾号为字母X的身份证号，请大写字母X。
	 */
	@XmlElement(name = "cert_id")
	@JSONField(name = "cert_id")
	private String certId;
	
	/**
	 * 姓名	name	否	String(64)	张三	用户姓名。
	 */
	@XmlElement(name = "name")
	@JSONField(name = "name")
	private String name;

	public String getAppid() {
		return appid;
	}

	public void setAppid(String appid) {
		this.appid = appid;
	}

	public String getMchId() {
		return mchId;
	}

	public void setMchId(String mchId) {
		this.mchId = mchId;
	}

	public String getOutTradeNo() {
		return outTradeNo;
	}

	public void setOutTradeNo(String outTradeNo) {
		this.outTradeNo = outTradeNo;
	}

	public String getTransactionId() {
		return transactionId;
	}

	public void setTransactionId(String transactionId) {
		this.transactionId = transactionId;
	}

	public String getCustoms() {
		return customs;
	}

	public void setCustoms(String customs) {
		this.customs = customs;
	}

	public String getMchCustomsNo() {
		return mchCustomsNo;
	}

	public void setMchCustomsNo(String mchCustomsNo) {
		this.mchCustomsNo = mchCustomsNo;
	}

	public int getDuty() {
		return duty;
	}

	public void setDuty(int duty) {
		this.duty = duty;
	}

	public String getActionType() {
		return actionType;
	}

	public void setActionType(String actionType) {
		this.actionType = actionType;
	}

	public String getSign() {
		return sign;
	}

	public void setSign(String sign) {
		this.sign = sign;
	}

	public String getSubOrderNo() {
		return subOrderNo;
	}

	public void setSubOrderNo(String subOrderNo) {
		this.subOrderNo = subOrderNo;
	}

	public String getFeeType() {
		return feeType;
	}

	public void setFeeType(String feeType) {
		this.feeType = feeType;
	}

	public String getOrderFee() {
		return orderFee;
	}

	public void setOrderFee(String orderFee) {
		this.orderFee = orderFee;
	}

	public String getTransportFee() {
		return transportFee;
	}

	public void setTransportFee(String transportFee) {
		this.transportFee = transportFee;
	}

	public String getProductFee() {
		return productFee;
	}

	public void setProductFee(String productFee) {
		this.productFee = productFee;
	}

	public String getCertType() {
		return certType;
	}

	public void setCertType(String certType) {
		this.certType = certType;
	}

	public String getCertId() {
		return certId;
	}

	public void setCertId(String certId) {
		this.certId = certId;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	
	
	
}
